package com.master.util;


import org.apache.commons.codec.digest.DigestUtils;


/**
 * MD5工具类
 */
public class MD5Util {

    public static String md5(String src){
        return DigestUtils.md5Hex(src);
    }

    private static final String salt = "1a2b3c4d";

    //将用户输入的密码拼接上固定salt,然后再对处理之后的密码进行MD5加密
    //第一次MD5+固定salt加密
    //前端的Form表单提交上来的应该是第一次加密之后的密码形式
    //2a19bfbf9f08385246a16079bdbe167b
    public static String inputPassFormPass(String inputPass){
        String str = "" + salt.charAt(0) + salt.charAt(2) + inputPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }


    //第二次MD5加密
    //采用MD5+随机salt对密码进行加密,将加密之后的最终数据存储到DB中.
    //这块输入进来的密码,是第一经过加密之后的密码.就是最终从表单上提交上来的pass
    public static String formPassToDBPass(String formPass,String salt){
        String str = "" + salt.charAt(0) + salt.charAt(2) + formPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }


    //将用户输入的明文密码转换成最终存储在数据库中的密文
    public static String inputPassToDbPass(String input,String saltDB){
        String formPass = inputPassFormPass(input);
        String dbPass = formPassToDBPass(formPass,saltDB);
        return dbPass;
    }

}
